﻿<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="reload.js"></script>

</head>
<script type="text/javascript">
  var i=0;
  function test(){
    var str=$("#h1").text();
    i++;
    $("#h1").html(str+i);
  }

  //该方法能即时加载并更新外壳重写的js文件,并获取到windows命名空间下的数据....强烈推荐使用.
  function reloadJS() {
    removeScript("json.js");
    loadScript("json.js?t="+Math.random());
    var inter;
    inter = setInterval(function () {
      // console.log("持续载入...");
      if (typeof data != 'undefined') {
        clearInterval(inter);
        // alert("加载完成.")
        // console.log("加载完成.");
      }
    }, 100);
    //数据回显
    $("#jsonContainer").val(window.data);
  }

  //能获取到指定文件的内容,但是只能在二次调用时获取到上次更新的数据.推荐用来获取静态文件的数据
  function getJson() {
    var jsonFrame = $("#jsonFrame");
    window.jsonStr=jsonFrame[0].contentWindow.document.body.innerText;
    // jsonFrame[0].contentWindow.location.reload();
    // jsonFrame.attr("src", jsonFrame.attr("src")+"?t="+Math.random());

    // alert(loc.href);
    //该方法在webview中可以正常使用
    $("#jsonContainer").val(window.jsonStr);
  }


  
  //保存json字符串
  function saveJson() {
    var fso=new ActiveXObject("Scripting.FileSystemObject");
    var f=fso.CreateTextFile("C:/temp.txt",true);
    f.write(window.jsonStr);
    f.Close();

  }

  //同上.不同点是支持多个数据id.推荐用来获取静态文件的数据片段
  function getScriptText() {
    var txt=$("#scriptFrame").contents().find("#jsonData2").html();
    $("#jsonContainer").val(txt);
    var json=eval('('+txt+')');
    alert(json.StockName);
  }

  //调用子窗口内的函数
  function calliframe() {

    $("#childFrame")[0].contentWindow.parentGetSonVal();
  }
  //获取子窗口内元素的值
  function getIptVal() {
    var v=$("#childFrame").contents().find("#ipt").val();
    $("#jsonContainer").val(v);
  }
  //清空当前页的某个元素内容
  function clean() {
    $("#jsonContainer").val("");
  }

  //刷新指定的子窗口,新内容只会在后续函数中才被使用
  function refreshFrame() {
    var scriptFrame = $("#scriptFrame");
    scriptFrame.attr("src", scriptFrame.attr("src"));
  }

//  弹窗显示Windows命名空间下的对象
function getjs() {
  var json=eval('('+window.data+')');
  if (typeof json != "undefined") {

    alert(json.Timestamp);
  }else{
    alert("变量未定义")
  }

}
</script>
<body>
<iframe src="child.html" id="childFrame" height="1" width="100%" scrolling="no"></iframe>
<br/>
<iframe src="json.html" id="jsonFrame" height="1" width="100%" scrolling="no"></iframe>
<br/>
<iframe src="script.html" id="scriptFrame" height="1" width="100%" scrolling="no" ></iframe>
<H1 id="h1">测试站点!</H1>
<p><input name="refresh" type="submit" id="refresh" value="刷新脚本" onClick="refreshFrame()"></p>
<H1>
  <input type="submit"  value="字符串追加" onClick="test()">
  <input  type="submit"  value="获取子窗口json字符串" onClick="getJson()">
  <input  type="submit"  value="保存子窗口json字符串" onClick="saveJson()">
  <input  type="submit" value="重新加载js" onClick="reloadJS()">
  <input  type="submit"  value="弹窗显示json变量" onClick="getjs()">
  <input  type="submit"  value="获取子窗口Text" onClick="getScriptText()">
  <input  type="submit" value="调用子窗口函数" onClick="calliframe()">
  <input  type="submit"  value="调用子窗口控件值" onClick="getIptVal()">
  <input type="submit" value="清空" onClick="clean()">
</H1>

<p><textarea cols="100" id="jsonContainer" name="jsonContainer" rows="10"></textarea></p>

<p><a href="http://www.baidu.com">百度本地窗口</a></p>
<p><a href="http://www.baidu.com" target="_blank" title="webview内不支持_blank链接">百度新窗口</a></p>
<script type="application/javascript" id="jsonScript" src="json.js"></script>
</body>

</html>
